if (rep->msg_type != DHCPV6_MSG_ADVERT &&
rep->msg_type != DHCPV6_MSG_REPLY)
return false;
-
} else if (type == DHCPV6_MSG_UNKNOWN) {
if (!accept_reconfig || rep->msg_type != DHCPV6_MSG_RECONF)
return false;
-
- } else if (rep->msg_type != DHCPV6_MSG_REPLY)
+ } else if (rep->msg_type != DHCPV6_MSG_REPLY) {
return false;
+ }
uint8_t *end = ((uint8_t*)buf) + len, *odata = NULL,
rcmsg = DHCPV6_MSG_UNKNOWN;
if (olen < -4 + sizeof(struct dhcpv6_ia_hdr))
options_valid = false;
} else if ((otype == DHCPV6_OPT_IA_ADDR) || (otype == DHCPV6_OPT_IA_PREFIX) ||
- (otype == DHCPV6_OPT_PD_EXCLUDE))
+ (otype == DHCPV6_OPT_PD_EXCLUDE)) {
// Options are not allowed on global level
options_valid = false;
+ }
}
if (!options_valid || ((odata + olen) > end))
if (!(client_options & DHCPV6_IGNORE_OPT_UNICAST))
server_addr = *(struct in6_addr *)odata;
- }
- else if (otype == DHCPV6_OPT_STATUS && olen >= 2) {
+ } else if (otype == DHCPV6_OPT_STATUS && olen >= 2) {
uint8_t *mdata = (olen > 2) ? &odata[2] : NULL;
uint16_t mlen = (olen > 2) ? olen - 2 : 0;
uint16_t code = ((int)odata[0]) << 8 | ((int)odata[1]);
} else if (otype == DHCPV6_OPT_DNS_SERVERS) {
if (olen % 16 == 0)
odhcp6c_add_state(STATE_DNS, odata, olen);
- } else if (otype == DHCPV6_OPT_DNS_DOMAIN)
+ } else if (otype == DHCPV6_OPT_DNS_DOMAIN) {
odhcp6c_add_state(STATE_SEARCH, odata, olen);
- else if (otype == DHCPV6_OPT_SNTP_SERVERS) {
+ } else if (otype == DHCPV6_OPT_SNTP_SERVERS) {
if (olen % 16 == 0)
odhcp6c_add_state(STATE_SNTP_IP, odata, olen);
} else if (otype == DHCPV6_OPT_NTP_SERVER) {
} else if (otype == DHCPV6_OPT_SIP_SERVER_A) {
if (olen == 16)
odhcp6c_add_state(STATE_SIP_IP, odata, olen);
- } else if (otype == DHCPV6_OPT_SIP_SERVER_D)
+ } else if (otype == DHCPV6_OPT_SIP_SERVER_D) {
odhcp6c_add_state(STATE_SIP_FQDN, odata, olen);
- else if (otype == DHCPV6_OPT_INFO_REFRESH && olen >= 4) {
+ } else if (otype == DHCPV6_OPT_INFO_REFRESH && olen >= 4) {
refresh = ntohl_unaligned(odata);
} else if (otype == DHCPV6_OPT_AUTH) {
struct dhcpv6_auth *r = (void*)&odata[-4];
odhcp6c_add_state(STATE_S46_MAPE, odata, olen);
} else if (otype == DHCPV6_OPT_S46_CONT_LW) {
odhcp6c_add_state(STATE_S46_LW, odata, olen);
- } else
+ } else {
odhcp6c_add_state(STATE_CUSTOM_OPTS, &odata[-4], olen + 4);
+ }
if (!dopt || !(dopt->flags & OPT_NO_PASSTHRU))
odhcp6c_add_state(STATE_PASSTHRU, &odata[-4], olen + 4);
delay = dhcpv6_rand_delay(retx->init_timeo * 1000);
retx->rto = (retx->init_timeo * 1000 + delay);
- } else
+ } else {
retx->rto = (2 * retx->rto + dhcpv6_rand_delay(retx->rto));
+ }
if (retx->max_timeo && (retx->rto >= retx->max_timeo * 1000)) {
retx->rto = retx->max_timeo * 1000 +